const loaderUtils = require('loader-utils')

// 首先loader其实就是一个函数，但这个函数不用使用箭头函数，否则会改变this的指向
module.exports = function (source) {
  // source参数为我们传入的源码

  // 可以通过this.query得到我们在options传入的参数
  // 但是这些参数有时候不一定是个对象，也有可能是字符串
  // 所以我们需要借助loader-utils来帮我们做一层处理
  // console.log(this.query)
  const options = loaderUtils.getOptions(this)
  // return source.replace('lzc', options.name)

  // 有时候，我们需要返回的不一定只是过滤好的内容，还需要返回sourceMap或者error
  // 所以我们就要借助this.callback
  // this.callback(
  //   err: Error | null, // 报错信息
  //   content: string | Buffer,  // 过滤好的内容
  //   sourceMap?: SourceMap, // sourceMap
  //   meta?: any // 其他参数
  // );

  this.callback(
    null,
    source.replace('chl', options.name)
  )
}
